package com.zyq.validation.pojo.entity;

import com.zyq.validation.configuration.User3GroupSequenceProvider;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.group.GroupSequenceProvider;

import javax.validation.constraints.*;
import java.util.Date;

@GroupSequenceProvider(User3GroupSequenceProvider.class)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User3 {  //根据lastName判断firstName(firstName为0时lastName是一种校验方式，不为0时是另一种校验方式)
    @NotNull(message = "firstName不能为null")
    @Size(min=1,max=15,message = "用户名字符数不符合规范(1到15个字符)") //SpringValidation框架提供的检测注解
    private String  firstName;


    //@Null(message = "用户名不存在，不能有密码" , groups = User3.group1.class)//如果account为空,密码也就不能有数据
    //@Size(max=0,message = "用户名不存在，不能有密码" , groups = User3.group1.class)//如果account为空,密码也就不能有数据
    @Size(min=1,max=3,message = "中国名字字符数不符合规范(1到3个字符)" , groups = {User3.group1.class}) //如果account不为空就判断密码字符个数(用第2组校验规则)
    @Size(min=3,max=17,message = "英文名字字符数不符合规范(3到17个字符)" , groups = {User3.group2.class}) //如果account不为空就判断密码字符个数(用第2组校验规则)
    private String  lastName;//名

    public interface  group1{}//如果account为空,密码也就不能有数据(用第一组校验规则)
    public interface  group2{}//如果account不为空就判断密码字符个数(用第2组校验规则)
}